package com.solome.base;

/*******************************************************************************************************************************************************************************************************
 * 动作状态接口
 * 
 * @author soells
 * @version 0.1
 */
public interface Status<T> {

	/**
	 * 如果此状态需要返回对象，通过此方法取得
	 * 
	 * @return 动作绑定对象
	 */
	T getBindingObject();

	/**
	 * 获取动作携带信息
	 * 
	 * @return 说明信息
	 */
	String getMessage();

	/**
	 * 获取状态码
	 * 
	 * @return 状态码
	 */
	int getStatusCode();

	/**
	 * 是否执行成功
	 * 
	 * @return 是/否
	 */
	boolean isSuccess();

	/**
	 * 如果此状态需要返回对象，通过此方法设置
	 * 
	 * @param obj
	 *            动作绑定对象
	 */
	void setBindingObject(T obj);

	/**
	 * 设置携带信息
	 * 
	 * @param message
	 *            说明信息
	 */
	void setMessage(String message);

	/**
	 * 设置状态码
	 * 
	 * @param code
	 *            状态码
	 */
	void setStatusCode(int code);

	/**
	 * 设置是否成功
	 * 
	 * @param value
	 *            是/否
	 */
	void setSuccess(boolean value);
}
